package com.solution.admin.auth.service;

import java.util.List;
import java.util.Map;

import com.solution.admin.auth.entity.OrgEntity;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 组织信息业务接口
 * 
 * @author diwankang
 * @version 2017年4月5日
 */
public interface OrgService {

	/**
	 * 保存组织信息
	 * 
	 * @param orgEntity
	 * @return
	 * @exception/throws [异常类型][异常说明]
	 * @author diwankang
	 * @date 2017年4月12日 下午2:49:22
	 * @modify <scy> <2017年4月12日 下午2:49:22>
	 */
	public long saveOrgInfo(OrgEntity orgEntity);

	/**
	 * 分页查询组织 信息列表
	 * 
	 * @param pageParam
	 * @param params
	 * @return
	 * @exception/throws [异常类型][异常说明]
	 * @author diwankang
	 * @date 2017年4月12日 下午2:49:26
	 * @modify <scy> <2017年4月12日 下午2:49:26>
	 */
	public PageBean listOrgByPage(PageParam pageParam, Map<String, Object> params);

	/**
	 * 查询所有org信息
	 * 
	 * @return
	 * @exception/throws [异常类型][异常说明]
	 * @author diwankang
	 * @date 2017年4月12日 下午5:30:52
	 * @modify <scy> <2017年4月12日 下午5:30:52>
	 */
	public List<OrgEntity> listOrg(Map<String, Object> map);
	/**
	 * 取得指定经销商的岗位列表
	 * 
	 * @param dealerId
	 *            经销商ID
	 * @return 取得到岗位实体列表
	 */
	public List<OrgEntity> listOrgByDealerId();

	/**
	 * 修改组织信息
	 * 
	 * @author: solin
	 * @date: 2017年4月21日 下午4:49:15
	 * @param orgEntity
	 *            组织信息实体对象
	 * @return
	 */
	public int updateOrg(OrgEntity orgEntity);
	
	/**
	 * 更新组织的树形节点
	 * @param id
	 *            组织编号
	 * @param orgName
	 *            组织名称
	 * @param parentId
	 *            上级组织编号
	 * @param status
	 *            状态
	 * @return 是否成功
	 */
	public boolean updateTreeNode(Long id, String orgName, Long parentId, Integer status);
	/**
	 * 取得指定经销商的组织位列表
	 * @param org
	 * @return
	 * @author qiaoenyin
	 * @date 2017年5月25日 上午9:50:42
	 */
	public List<OrgEntity> listOrg(OrgEntity org);

}
